<?php
class Zalacznik_Model extends Model {

        private static $_id_zalacznika;
        private $sql_zalacznik="select id_zalacznik,nazwa from zalaczniki where id_produkt=?";
        public $id_wniosku,$nazwa_zalacznika;

        /*
         * pobiera aktualny id z bazy zalacznika dodanego
         */
        public function id_aktualny_zalacznik(){
            return self::$_id_zalacznika;
        }
        public function set_id_wniosku($zmienna)
        {
            $this->id_wniosku=$zmienna;
        }
        public function get_id_wniosku()
        {
            return $this->id_wniosku;
        }
        public function set_id_zalacznika($id){
            self::$_id_zalacznika=$id;
        }
        public function get_nazwa_zalacznika()
        {
            return $this->nazwa_zalacznika;
        }
        public function set_nazwa_zalacznika($zmienna){
            $this->nazwa_zalacznika=$zmienna;
            //self::$_id_zalacznika=$id;
        }
        public function __construct(){
            parent::__construct();
        }
        public function usun_zalacznik(){
            $rezultat= $this->db->query('delete  from zalaczniki where id_zalacznik='.self::$_id_zalacznika);
        }
        /**
         *wstawia wpis o zalaczniku
         * @param string $opcja w(wniosek),p(projekt)
         * @param string $nazwa nazwa zalacznika
         * @param string $waga waga zalacznika
         * @return <type>
         */
        public function wstaw_zalacznik($opcja,$nazwa,$waga)
        {
            switch($opcja)
            {
                case 'w':
                    $sql="insert into zalaczniki_wniosek(nazwa,id_wniosek,data_dodania,waga_zalacznika,id_komentarz)
                values(?,?,now(),?,?)";
                    $status=$this->db->query($sql,array($nazwa,$this->get_id_wniosku(),$waga,$this->id_aktualny_zalacznik()));
            return $status->insert_id();
                    break;
                case 'p':
                    $sql="insert into zalaczniki_wniosek(nazwa,id_projekt,data_dodania,waga_zalacznika,id_komentarz)
                values(?,?,now(),?,?)";
                    $status=$this->db->query($sql,array($nazwa,$this->get_id_wniosku(),$waga,$this->id_aktualny_zalacznik()));
            return $status->insert_id();
                    break;
                case 'szczegoly':
                    $sql="insert into zalaczniki_produkty(zalacznik,id_moje_produkty)
                values(?,?)";
                    $status=$this->db->query($sql,array($nazwa,$this->get_id_wniosku()));
            return $status->insert_id();
                    break;

            }
            
        
        }
        /*
         * dodaje zalacznik do danego produktu
         * @param $_zalacznik - zwalidowana tablica formularza
         * @param $id_produktu - id danego produktu, do ktorego nalezy zalacznik
         */
      public function dodaj($opcja,$_zalacznik,$waga){
          $zalacznik=$_zalacznik['zalaczniki'];
          $str=str_replace(' ', '',$this->clear_spec_char($zalacznik->getOriginalName()));
          //echo 'ssssss';
          $id_=$this->wstaw_zalacznik($opcja,$str,$waga);
          //echo '<br>id='.$id_;

          if ($id_!=-1)
              {
              $zalacznik->save($id_.'_'.$str);
              if ($zalacznik->isSaved())
                       return $id_;
              }
      }
      public function upload_pliku($id_projektu,$tab,$sciezka)
      {
        $target_path = $sciezka;
        $nazwa_pliku=str_replace(' ', '',$this->clear_spec_char($tab['plik']['name']));
        $target_path = $target_path .  $id_projektu.'_'.$nazwa_pliku;
        if(move_uploaded_file($tab['plik']['tmp_name'], $target_path)) {
            return $id_projektu.'_'.$nazwa_pliku;
        } else{
            return 0;
        }
      }
              /*
         * zamienia polskie ogonki na znaki angielskie
         * @param $text-ciag znakow z ogonkami
         */
        function clear_spec_char($text){
            $tabela = Array(
            //WIN
            "\xb9" => "a", "\xa5" => "A", "\xe6" => "c", "\xc6" => "C",
            "\xea" => "e", "\xca" => "E", "\xb3" => "l", "\xa3" => "L",
            "\xf3" => "o", "\xd3" => "O", "\x9c" => "s", "\x8c" => "S",
            "\x9f" => "z", "\xaf" => "Z", "\xbf" => "z", "\xac" => "Z",
            "\xf1" => "n", "\xd1" => "N",
            //UTF
            "\xc4\x85" => "a", "\xc4\x84" => "A", "\xc4\x87" => "c", "\xc4\x86" => "C",
            "\xc4\x99" => "e", "\xc4\x98" => "E", "\xc5\x82" => "l", "\xc5\x81" => "L",
            "\xc3\xb3" => "o", "\xc3\x93" => "O", "\xc5\x9b" => "s", "\xc5\x9a" => "S",
            "\xc5\xbc" => "z", "\xc5\xbb" => "Z", "\xc5\xba" => "z", "\xc5\xb9" => "Z",
            "\xc5\x84" => "n", "\xc5\x83" => "N",
            //ISO
            "\xb1" => "a", "\xa1" => "A", "\xe6" => "c", "\xc6" => "C",
            "\xea" => "e", "\xca" => "E", "\xb3" => "l", "\xa3" => "L",
            "\xf3" => "o", "\xd3" => "O", "\xb6" => "s", "\xa6" => "S",
            "\xbc" => "z", "\xac" => "Z", "\xbf" => "z", "\xaf" => "Z",
            "\xf1" => "n", "\xd1" => "N",
            //I to co nie potrzebne
            "$" => "-", "!" => "-", "@" => "-", "#" => "-", "%" => "-");
            return strtr($text,$tabela);
        }
      public function pobierz_nazwy_zalacznikow_odpowiedz(){
          $rr=$this->db
                  ->from('zalaczniki_wniosek')
                  ->select(array('*'))
//                          ->where(array('droga_komentarza'=>'odpowiedz','id_komentarz'=>$this->id_aktualny_zalacznik()))
                  ->where('id_komentarz',$this->id_aktualny_zalacznik())
                    ->get()->result_array(false);
          return $rr;
      }
      public function pobierz_nazwy_zalacznikow($id_wniosek){
          $rr=$this->db
                  ->from('zalaczniki_wniosek')
                  ->select(array('*'))
                          ->where('id_komentarz',$this->id_aktualny_zalacznik())
                    ->get()->result_array(false);
          return $rr;
      }
      /**
       * Pobiera nazwy zalacznikow oraz ich wagi dla danego komentarza
       * @param unknown_type $opcja(projekt,wniosek)
       */
      public function pobierz_nazwy_zalacznikow_dla_komentarza($opcja)
      {
      	switch($opcja)
      	{
      		case 'w':
      			$sql="
      			select z.* from zalaczniki_wniosek z where id_komentarz=?";
      			$status=$this->db->query($sql,$this->get_id_wniosku())->result_array(false);
      			return $status;
      			break;
      		case 'p':
      			break;
                case 'szczegoly':
                    break;
      	}
      }
        public function pobierz_nazwy_zalacznikow_dla_produktu($opcja,$id_projektu)
        {
            switch($opcja)
            {
                case 'projekt':
                    return $this->db->query('
                        select 
                            zalacznik
                                from 
                                    zalaczniki_produkty z 
                                    inner join 
                                    moje_produkty_projekt mo
                                        on 
                                    z.id_moje_produkty=mo.id_moje_produkty 
                                        and 
                                    mo.id_projekt=?',$id_projektu)->result_array();
                    break;
            }
            
        }
}
?>
